package com.stylefeng.guns.modular.system.service;

import com.baomidou.mybatisplus.service.IService;
import com.github.pagehelper.PageInfo;
import com.stylefeng.guns.modular.small.dto.ArtificerMeansDTO;
import com.stylefeng.guns.modular.small.util.ResponseResultDTO;
import com.stylefeng.guns.modular.system.model.ArtificerMeans;
import org.springframework.ui.Model;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 技师列表 服务类
 * </p>
 *
 * @author stylefeng
 * @since 2019-09-01
 */
public interface IArtificerMeansService extends IService<ArtificerMeans> {

    /**
     * 技师列表查询
     * @param viewProfessionalTitle  技师技能分类
     * @param distance  是否距离排序 默认false
     * @param evaluation   是否评分排序  默认false
     * @param consumerLongitude  客户经度
     * @param consumerLatitude  客户维度
     * @param pageCount   每页多少条数
     * @param currentCount  当前第几页
     * @return
     */
    PageInfo<ArtificerMeans> searchList(String viewProfessionalTitle, Boolean distance, Boolean evaluation, String consumerLongitude, String consumerLatitude, Integer pageCount, Integer currentCount);

    /**
     * 获取技师详情
     * @param artificerMeansDTO
     * @return
     */
    ArtificerMeansDTO searchDeatil(ArtificerMeansDTO artificerMeansDTO);

    /**
     * 技师登录
     * @param phone
     * @param code
     * @return
     */
    ResponseResultDTO login(String phone, String code);

    /**
     * 周边显示
     * @param viewProfessionalTitle
     * @param sex
     * @param isOnline
     * @param consumerLongitude
     * @param consumerLatitude
     * @param distance
     * @param evaluation
     * @return
     */
    ResponseResultDTO orderList(String viewProfessionalTitle, String sex, Boolean isOnline, Double consumerLongitude, Double consumerLatitude, Integer distance,Boolean distanceSort, Boolean evaluation);

    /***
     * 通过查询周边定位或者性别及是否在线查询
     * @param lat
     * @param lng
     * @param sex
     * @param isOnline
     * @param distance
     * @return
     */
    List<ArtificerMeans> searchByparam(String lat, String lng, String sex, String isOnline, Integer distance);

    /**
     * 跳转下单页面
     * @param artId
     * @param model
     * @return
     */
    String createOrderPage(Integer artId, Model model);

    /**
     * 查询用户所有的评论信息
     * @param id
     * @return
     */
     void  findAllComment(Integer id,Model model);

    /**
     * 查询所有 的评论信息
     * @param id
     * @return
     */
    ResponseResultDTO searchAllComment(Integer id);
}
